package com.juyu.miliao.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonView;
import com.juyu.miliao.api.domain.vo.UserVO;
import com.juyu.miliao.api.util.JacksonView;
import com.juyu.miliao.api.validator.common.Save;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.sql.Timestamp;

/**
 * 用户视频
 *
 * @author wbf
 * 2018年6月27日
 */
@Data
public class UserVideo {
    /**
     * 视频id  pk
     */
    @JsonView(JacksonView.UserVideo.class)
    private Long videoId;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonView(JacksonView.UserVideo.class)
    private Timestamp createTime;

    /**
     * 更新时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp updateTime;

    /**
     * user id
     */
    @JsonView(JacksonView.UserVideo.class)
    private Long userId;

    /**
     * 视频地址
     */
    @NotBlank(groups = Save.class, message = "视频地址不能为空")
    @JsonView(JacksonView.UserVideo.class)
    private String vidUrl;

    /**
     * 描述  注:这个为Mysql保留字,写sql要用`describe`
     */
    private String describe;

    /**
     * 封面地址
     */
    @NotBlank(groups = Save.class, message = "封面地址不能为空")
    @JsonView(JacksonView.UserVideo.class)
    private String coverUrl;

    /**
     * 视频类型 1.热门 2.最新 3.特权
     */
    private Integer vidType;

    /**
     * 点赞数
     */
    private Integer love;

    /**
     * 评论数
     */
    private Integer commentNum;

    /**
     * 审核状态 1:审核中 2:通过 3：未通过
     */
    @JsonView(JacksonView.UserVideo.class)
    private Integer state;

////////////////////////  vo  start /////////////////////////////////////////////////////
    /**
     * 线上状态  0离线 1在线 3勿扰
     */
    private Integer lineStatus;

    /**
     * 用户点赞
     */
    private Boolean userLike;

    /**
     * 当前用户关注
     */
    private Boolean userFollow;

    /**
     * 城市
     */
    private String city;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 视频价格
     */
    private String videoPrice;

    /**
     * 头像
     */
    private String icon;

    /**
     * 是否接听视频  1 接听,2不接听
     */
    private Integer receiveVideo;

    private UserVO userVO;
    /**
     * 属性 1:免费 2付费
     */
    @JsonView(JacksonView.UserVideo.class)
    private int videoOpenType;

///////////////////////// end  ////////////////////////////////////////////////////////////
}
